package pvn.com.controls;

import net.rim.device.api.system.Bitmap;
import net.rim.device.api.system.Display;
import net.rim.device.api.ui.DrawStyle;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.Font;
import net.rim.device.api.ui.XYEdges;
import net.rim.device.api.ui.container.HorizontalFieldManager;
import net.rim.device.api.ui.decor.BackgroundFactory;

public class TitleBar extends HorizontalFieldManager {
    /** label cho title bar*/
    ColorLabel rightLabel = null;
    /** text name cho app*/
    static String AppName = "FxPro Trader";

    /**
     * khởi tạo title bar
     * @param title - text hiển thị cho title
     */
    public TitleBar(String title) {
    	//màu nền cho title
        setBackground(BackgroundFactory.createBitmapBackground(Bitmap
                .getBitmapResource("images/title_bg.png")));

        //khởi tạo label căn lề phải
        this.rightLabel = new ColorLabel(title, DrawStyle.RIGHT);
        //thiết lập màu chữ và màu bóng  
        this.rightLabel.setFontColor(0xFFFFFF, 0x000000);
        //thiết lập vị trí tịnh tiến
        this.rightLabel.setTranslate(-1, -2);
        //thiết lập font
        this.rightLabel.setFont(this.rightLabel.getFont().derive(1, 19));
        //thiết lập độ rộng nhỏ hơn 20 so với màn hình
        this.rightLabel.width = (Display.getWidth() - 20);
        //đưa và quản lý
        add(this.rightLabel);
    }
    
    /**
     * thiết lập title
     * @param title
     */
    public void setTitle(String title) {
        this.rightLabel.setText(title);
    }

    /* (non-Javadoc)
     * layout con để quản lý fields
     * @see net.rim.device.api.ui.container.HorizontalFieldManager#sublayout(int, int)
     */
    protected void sublayout(int maxWidth, int maxHeight) {
    	//khởi tạo
        super.sublayout(maxWidth, maxHeight);
        //thiết lập kích thước extent cho fields
        setExtent(Display.getWidth(), getPreferredHeight());
        //độ cao còn lại
        int delta = getPreferredHeight() - this.rightLabel.getFont().getHeight() - 4;
        //thiết lập độ rộng nhỏ hơn 20 so với màn hình
        this.rightLabel.width = (Display.getWidth() - 20);
        //thiết lập padding
        this.rightLabel.setPadding(new XYEdges(delta, 10, 0, 0));
        //đặt kích thước
        this.rightLabel.slayout(this.rightLabel.width, maxHeight);
    }

    public int getPreferredHeight() {
        return 34;
    }

    protected void applyTheme() {
    }
}
